home *** CD-ROM | disk | FTP | other *** search
/ Champak 138 / Volume 138 Aug 19 2011 - Damaged.iso / Games / shadez.swf / scripts / Local / Game / Level / CLevel.as next >
Encoding:
Text File  |  2011-08-19  |  14.6 KB  |  409 lines

  1. package Local.Game.Level
  2. {
  3.    import Local.*;
  4.    import Local.Draw.*;
  5.    import Local.Game.*;
  6.    import Local.Game.HUD.*;
  7.    import Local.Game.Thing.*;
  8.    import Local.Game.World.*;
  9.    import Local.Game.World.Map.*;
  10.    import STC9.IO.*;
  11.    import STC9.System.CProfiler;
  12.    import flash.display.*;
  13.    import flash.events.*;
  14.    import flash.geom.*;
  15.    
  16.    public class CLevel extends EventDispatcher
  17.    {
  18.       
  19.       internal static var mSpawnEnemyX:Number;
  20.       
  21.       public static const SECONDS:int = CThingBase.SECONDS;
  22.        
  23.       
  24.       private var mStages:Array;
  25.       
  26.       private var mCounters:Object;
  27.       
  28.       private var mSpawnFriendX:Number;
  29.       
  30.       private var mStage:CLevelStage;
  31.       
  32.       private var mNextStageTick:int = 0;
  33.       
  34.       internal var mWorld:CWorld;
  35.       
  36.       public var mEnemyContainer:CThingContainer;
  37.       
  38.       private var mNextStageFT:Boolean;
  39.       
  40.       private var mStageIndex:int;
  41.       
  42.       private var mWindowLevelUp:CWindow_LevelUp;
  43.       
  44.       public var Process:Function;
  45.       
  46.       public var mFriendContainer:CThingContainer;
  47.       
  48.       public function CLevel(param1:CWorld)
  49.       {
  50.          if(true)
  51.          {
  52.             mNextStageTick = 0;
  53.             if(true)
  54.             {
  55.                super();
  56.                if(true)
  57.                {
  58.                   mWorld = param1;
  59.                   if(true)
  60.                   {
  61.                      mEnemyContainer = new CThingContainer();
  62.                      if(true)
  63.                      {
  64.                         mEnemyContainer.mGroupID = CThingContainer.GROUPID_ENEMY;
  65.                         if(true)
  66.                         {
  67.                            mSpawnEnemyX = mWorld.mLandscape.mWidth;
  68.                         }
  69.                         mFriendContainer = new CThingContainer();
  70.                      }
  71.                      mFriendContainer.mGroupID = CThingContainer.GROUPID_FRIEND;
  72.                   }
  73.                   mSpawnFriendX = 0;
  74.                }
  75.                mStages = CLevelData.GetStages(this);
  76.             }
  77.             mStageIndex = CLevelData.mStartLevel - 1;
  78.          }
  79.       }
  80.       
  81.       public function Dispose() : void
  82.       {
  83.       }
  84.       
  85.       internal function e_STAGE_COMPLETE(param1:Event = null) : void
  86.       {
  87.          var _loc2_:CLevelStage = null;
  88.          _loc2_ = CLevelStage(param1.currentTarget);
  89.          if(true)
  90.          {
  91.             mNextStageTick = _loc2_.mNextStageTicks;
  92.             mNextStageFT = true;
  93.          }
  94.       }
  95.       
  96.       public function SPAWN_chinooktank(param1:Number = 0) : *
  97.       {
  98.          return AddFriend(new CAircraftChinook(GetSpawnAir(mSpawnFriendX - 100,200),"tank"),param1);
  99.       }
  100.       
  101.       public function AddFriend(param1:*, param2:Number = 0, param3:Boolean = true) : *
  102.       {
  103.          param1.mSelectable = param3;
  104.          mFriendContainer.AddThing(param1);
  105.          param1.addEventListener(CThingMain.REACHEDOBJECTIVE,e_FRIEND_REACHEDOBJECTIVE);
  106.       }
  107.       
  108.       public function SPAWN_tankm1a1(param1:Number = 0) : *
  109.       {
  110.          return AddFriend(new CVehicleTankM1A1(GetSpawnGround(mSpawnFriendX - 100)),param1);
  111.       }
  112.       
  113.       public function NextStage() : void
  114.       {
  115.          if(true)
  116.          {
  117.             mStage = mStages[++mStageIndex];
  118.             if(true)
  119.             {
  120.                mHUD.SetStageInfo(mStageIndex);
  121.             }
  122.             CThingBase.mEnemySpeed = mStage.mEnemySpeed;
  123.          }
  124.       }
  125.       
  126.       public function get mMap() : CMap
  127.       {
  128.          return mWorld.mMap;
  129.       }
  130.       
  131.       public function SPAWN_apache(param1:Number = 0) : *
  132.       {
  133.          ┬º┬ºpush(┬º┬ºfindproperty(AddFriend));
  134.          ┬º┬ºpush(┬º┬ºfindproperty(CAircraftApache));
  135.          ┬º┬ºpush(┬º┬ºfindproperty(GetSpawnAir));
  136.          ┬º┬ºpush(mSpawnFriendX);
  137.          if(true)
  138.          {
  139.             ┬º┬ºpush(┬º┬ºpop() - 100);
  140.          }
  141.          return ┬º┬ºpop().AddFriend(new ┬º┬ºpop().CAircraftApache(┬º┬ºpop().GetSpawnAir(┬º┬ºpop(),200)),param1);
  142.       }
  143.       
  144.       public function GetSpawnAir(param1:Number, param2:Number) : CPosition
  145.       {
  146.          return new CPosition(param1,mWorld.mLandscape.GetAltitude(param1) - param2);
  147.       }
  148.       
  149.       public function get mMouse() : CMouse
  150.       {
  151.          return mWorld.mMouse;
  152.       }
  153.       
  154.       public function Start() : void
  155.       {
  156.          Process = Process_Normal;
  157.       }
  158.       
  159.       public function get mLandscape() : CLandscape
  160.       {
  161.          return mWorld.mLandscape;
  162.       }
  163.       
  164.       public function GetSpawnGround(param1:Number) : CPosition
  165.       {
  166.          return new CPosition(param1,mWorld.mLandscape.GetAltitude(param1));
  167.       }
  168.       
  169.       public function e_FRIEND_REACHEDOBJECTIVE(param1:Event = null) : void
  170.       {
  171.          var _loc2_:CThingMain = null;
  172.          _loc2_ = CThingMain(param1.currentTarget);
  173.          ┬º┬ºpush(mWorld.mGame.mHUD);
  174.          ┬º┬ºpush(mWorld.mGame.mHUD.mFunds);
  175.          if(true)
  176.          {
  177.             ┬º┬ºpush(┬º┬ºpop() + _loc2_.mSmallPrize);
  178.          }
  179.          ┬º┬ºpop().mFunds = ┬º┬ºpop();
  180.          _loc2_.removeEventListener(CThingMain.REACHEDOBJECTIVE,e_FRIEND_REACHEDOBJECTIVE);
  181.       }
  182.       
  183.       public function SPAWN_chinooktroop(param1:Number = 0) : *
  184.       {
  185.          ┬º┬ºpush(┬º┬ºfindproperty(AddFriend));
  186.          ┬º┬ºpush(┬º┬ºfindproperty(CAircraftChinook));
  187.          ┬º┬ºpush(┬º┬ºfindproperty(GetSpawnAir));
  188.          ┬º┬ºpush(mSpawnFriendX);
  189.          if(true)
  190.          {
  191.             ┬º┬ºpush(100);
  192.             if(true)
  193.             {
  194.                addr26:
  195.                ┬º┬ºpush(┬º┬ºpop() - ┬º┬ºpop());
  196.                ┬º┬ºpush(200);
  197.             }
  198.             return ┬º┬ºpop().AddFriend(new ┬º┬ºpop().CAircraftChinook(┬º┬ºpop().GetSpawnAir(┬º┬ºpop(),┬º┬ºpop()),"troop"),param1);
  199.          }
  200.          ┬º┬ºgoto(addr26);
  201.       }
  202.       
  203.       public function get mHUD() : CHUD
  204.       {
  205.          return mGame.mHUD;
  206.       }
  207.       
  208.       public function KillAllEnemies() : void
  209.       {
  210.          var _loc1_:CThingMain = null;
  211.          for each(_loc1_ in mEnemyContainer.mChildren)
  212.          {
  213.             _loc1_.mDead = true;
  214.          }
  215.       }
  216.       
  217.       private function e_LEVELUP_DISPOSE(param1:Event = null) : void
  218.       {
  219.          mWindowLevelUp = null;
  220.          if(mStageIndex == mStages.length - 1)
  221.          {
  222.             mGame.dispatchEvent(new Event(CGame.GAME_COMPLETE));
  223.             return;
  224.          }
  225.       }
  226.       
  227.       public function SPAWN_m16(param1:Number = 0) : *
  228.       {
  229.          return AddFriend(new CPeepM16(GetSpawnGround(mSpawnFriendX - 10)),param1);
  230.       }
  231.       
  232.       public function Process_Normal() : void
  233.       {
  234.          var _loc1_:CThingMain = null;
  235.          var _loc2_:Number = NaN;
  236.          ┬º┬ºpush(mWindowLevelUp);
  237.          if(true)
  238.          {
  239.             if(┬º┬ºpop())
  240.             {
  241.                ┬º┬ºpush(mWindowLevelUp);
  242.                if(true)
  243.                {
  244.                   ┬º┬ºpush(┬º┬ºpop().mCount);
  245.                   if(true)
  246.                   {
  247.                      if(┬º┬ºpop() == SECONDS * 7)
  248.                      {
  249.                         addr29:
  250.                         mWindowLevelUp.Close();
  251.                      }
  252.                      addr31:
  253.                      mWindowLevelUp.Update();
  254.                      addr32:
  255.                      CThingMain.mFurthestMostEnemy = null;
  256.                      _loc2_ = mLandscape.mWidth;
  257.                      ┬º┬ºpush(0);
  258.                   }
  259.                   var _loc3_:* = ┬º┬ºpop();
  260.                   var _loc4_:* = mEnemyContainer.mChildren;
  261.                   loop0:
  262.                   while(true)
  263.                   {
  264.                      ┬º┬ºpush(┬º┬ºhasnext(_loc4_,_loc3_));
  265.                      if(true)
  266.                      {
  267.                         if(┬º┬ºpop())
  268.                         {
  269.                            _loc1_ = ┬º┬ºnextvalue(_loc3_,_loc4_);
  270.                            if(true)
  271.                            {
  272.                               if(_loc1_.mPosition.x < _loc2_)
  273.                               {
  274.                                  if(true)
  275.                                  {
  276.                                     CThingMain.mFurthestMostEnemy = _loc1_;
  277.                                  }
  278.                                  _loc2_ = _loc1_.mPosition.x;
  279.                               }
  280.                            }
  281.                            continue;
  282.                         }
  283.                         if(true)
  284.                         {
  285.                            if(true)
  286.                            {
  287.                               mFriendContainer.Process_Children();
  288.                               if(true)
  289.                               {
  290.                                  CThingMain.mFurthestMostFriend = null;
  291.                                  if(true)
  292.                                  {
  293.                                     _loc2_ = 0;
  294.                                     if(true)
  295.                                     {
  296.                                        _loc3_ = 0;
  297.                                        _loc4_ = mFriendContainer.mChildren;
  298.                                        while(true)
  299.                                        {
  300.                                           ┬º┬ºpush(┬º┬ºhasnext(_loc4_,_loc3_));
  301.                                           break loop0;
  302.                                        }
  303.                                        addr132:
  304.                                        if(true)
  305.                                        {
  306.                                           mEnemyContainer.Process_Children();
  307.                                           if(true)
  308.                                           {
  309.                                              CProfiler.AddDebug("TCount.FFFriend",String(CThingMain.mFurthestMostFriend));
  310.                                              if(true)
  311.                                              {
  312.                                                 CProfiler.AddDebug("TCount.FFEnemys",String(CThingMain.mFurthestMostEnemy));
  313.                                                 if(true)
  314.                                                 {
  315.                                                    CProfiler.AddDebug("TCount.Friends",String(mFriendContainer.mNumChildren));
  316.                                                    if(true)
  317.                                                    {
  318.                                                       CProfiler.AddDebug("TCount.Enemies",String(mEnemyContainer.mNumChildren));
  319.                                                       if(true)
  320.                                                       {
  321.                                                          if(!mNextStageTick)
  322.                                                          {
  323.                                                             mStage.Process();
  324.                                                          }
  325.                                                          ┬º┬ºgoto(addr236);
  326.                                                       }
  327.                                                       if(mEnemyContainer.mNumChildren == 0)
  328.                                                       {
  329.                                                       }
  330.                                                       ┬º┬ºgoto(addr233);
  331.                                                    }
  332.                                                    if(mNextStageFT)
  333.                                                    {
  334.                                                    }
  335.                                                    ┬º┬ºgoto(addr200);
  336.                                                 }
  337.                                                 mGame.addChild(mWindowLevelUp = new CWindow_LevelUp("LAH"));
  338.                                              }
  339.                                              mWindowLevelUp.addEventListener(CWindow.DISPOSING,e_LEVELUP_DISPOSE);
  340.                                           }
  341.                                           ┬º┬ºgoto(addr200);
  342.                                        }
  343.                                        addr200:
  344.                                        mHUD.SetStageInfo(mStageIndex,0,mNextStageTick);
  345.                                        ┬º┬ºpush((_loc3_ = ┬º┬ºfindproperty(mNextStageTick)).mNextStageTick);
  346.                                        if(true)
  347.                                        {
  348.                                           _loc3_.mNextStageTick = _loc4_;
  349.                                           ┬º┬ºpush(_loc4_ = ┬º┬ºpop() - 1);
  350.                                        }
  351.                                        if(┬º┬ºpop() == 0)
  352.                                        {
  353.                                           addr221:
  354.                                           NextStage();
  355.                                           mNextStageFT = false;
  356.                                           ┬º┬ºgoto(addr223);
  357.                                        }
  358.                                        addr223:
  359.                                        addr233:
  360.                                        addr236:
  361.                                        return;
  362.                                        addr130:
  363.                                     }
  364.                                  }
  365.                                  ┬º┬ºgoto(addr221);
  366.                               }
  367.                               ┬º┬ºgoto(addr233);
  368.                            }
  369.                            ┬º┬ºgoto(addr236);
  370.                         }
  371.                         ┬º┬ºgoto(addr132);
  372.                      }
  373.                      break;
  374.                   }
  375.                   while(true)
  376.                   {
  377.                      if(┬º┬ºpop())
  378.                      {
  379.                         _loc1_ = ┬º┬ºnextvalue(_loc3_,_loc4_);
  380.                         if(true)
  381.                         {
  382.                            if(_loc1_.mPosition.x > _loc2_)
  383.                            {
  384.                               if(true)
  385.                               {
  386.                                  CThingMain.mFurthestMostFriend = _loc1_;
  387.                               }
  388.                               _loc2_ = _loc1_.mPosition.x;
  389.                            }
  390.                         }
  391.                         continue;
  392.                      }
  393.                      ┬º┬ºgoto(addr132);
  394.                   }
  395.                }
  396.                ┬º┬ºgoto(addr29);
  397.             }
  398.             ┬º┬ºgoto(addr32);
  399.          }
  400.          ┬º┬ºgoto(addr31);
  401.       }
  402.       
  403.       public function get mGame() : CGame
  404.       {
  405.          return mWorld.mGame;
  406.       }
  407.    }
  408. }
  409.